Compositional verification of model-level refactorings based on graph transformations

نویسنده

  • Dénes András Bisztray
چکیده

With the success of model-driven development as well as component-based and service-oriented systems, models of software architecture are key artifacts in the development process. To adapt to changing requirements and improve internal software quality such models have to evolve while preserving aspects of their behaviour. These behaviour preserving developments are known as refactorings. The verification of behaviour preservation requires formal semantics, which can be defined by model transformation, e.g., using process algebras as semantic domain for architectural models. Denotational semantics of programming languages are by definition compositional. In order to enjoy a similar property in the case of model transformations, every component of the source model should be distinguishable in the target model and the mapping compatible with syntactic and semantic composition. To avoid the costly verification of refactoring steps on large systems and create refactoring patterns we present a general method based on compositional typed graph transformations. This method allows us to extract a (usually much smaller) rule from the transformation performed, verify this rule instead and use it as a refactoring pattern in other scenarios. The main result of the thesis shows that the verification of rules is indeed sufficient to guarantee the desired semantic relation between source and target models. A formal definition of compositionality for mappings from software models represented as typed graphs to semantic domains is proposed. In order to guarantee compositionality, a syntactic criterion has been established for the implementation of the mappings by typed graph transformations with negative application conditions. We apply the approach to the refactoring of architectural models based on UML component, structure, and activity diagrams with CSP as semantic domain.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

On the Usage of Concrete Syntax in Model Transformation Rules

Graph transformations are one of the best known approaches for defining model-to-model transformations in model-based software development. They are defined over the abstract syntax of source and target languages, described by metamodels. Since graph transformations are defined on the abstract syntax level, they can be hard to read and require an in-depth knowledge of the involved metamodels. I...

متن کامل

On the Use of Graph Transformations for Model Refactoring

Model-driven software engineering promotes the use of models and transformations as primary artifacts. Several formalisms can be used for the specification of model transformations. We propose to represent models as graphs, and model transformations as graph transformations. In particular, we focus on the activity of model refactoring, and show how graph transformation theory can provide formal...

متن کامل

Marker-Directed Optimization of UnCAL Graph Transformations

Buneman et al. proposed a graph algebra called UnCAL (Unstructured CALculus) for compositional graph transformations based on structural recursion, and we have recently applied to model transformations. The compositional nature of the algebra greatly enhances the modularity of transformations. However, intermediate results generated between composed transformations cause overhead. Buneman et al...

متن کامل

Formalizing refactorings with graph transformations

The widespread interest in refactoring —transforming the source-code of an objectoriented program without changing its external behaviour— has increased the need for a precise definition of refactoring transformations and their properties. In this paper we explore the use of graph rewriting for specifying refactorings and their effect on programs. We introduce a graph representation for program...

متن کامل

Rule-Level Verification of Business Process Transformations using CSP

Business Process Reengineering is one of the most widely adopted techniques to improve the efficiency of organisations. Transforming process models, we intend to change their semantics in certain predefined ways, making them more flexible, more restrictive, etc. To understand and control the semantic consequences of change we use CSP to capture the behaviour of processes before and after the tr...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010